﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CSharpAlgorithm
{
    class LeafCount
    {
        public LeafCount()
        {
            int n = Int32.Parse(TestConsole.ReadLine());
            int[] parent = new int[n];
            int[] childCount = new int[n];
            string[] input = TestConsole.ReadLine().Split();
            for (int i = 0; i < n; i++)
            {
                parent[i] = Int32.Parse(input[i]);
                int node = i;
                while (node > 0)
                {
                    node = parent[node];
                    childCount[node]++;
                }
            }
            int leafCount = 0;
            for (int i = 0; i < n; i++)
            {
                if (childCount[i] == 0)
                {
                    leafCount++;
                }
            }
            int delNode = Int32.Parse(TestConsole.ReadLine());
            int result = leafCount 
                - (childCount[delNode] == 0 ? 1 : childCount[delNode])  //지워질 노드에 자식이 있었으면 자식의 수만큼, 자식이 없을 경우 1만큼 리프 감소
                + (childCount[parent[delNode]] == 1 ? 1 : 0); //지워질 노드의 부모노드가 자식이 하나였으면 리프 추가
            Console.WriteLine(result);
        }
    }
}
